package com.itheima.继承_练习.重载;


import com.itheima.继承_练习.Ye;

/*

方法的重写:在继承关系下,子类出现了和父类一摸一样的方法定义
 */
class Father extends Ye {

    public void smoke(){
        System.out.println("抽大前门");
    }
    public void drink(){
        System.out.println("喝白开水");
    }



    //@Override关键字  检验子类中得到方法是否符合重写规则
    public void method1(){
    }
    //子类的重写方法权限修饰符范围必须大于父类
    void method2(){
    }
    //父类的私有方法子类无法重写
    private void method3(){
    }
    //父类的静态方法子类无法重写
    public static void method4(){
    }
    //当父类的方法带有返回值时,子类重写该方法时,返回值类型必须与父类一致,或者子类返回值的类型是父类方法返回值的子类型
    public Ye method5(){
        return new Ye();
    }
    //子类重写父类方法,必须保持子类方法的参数列表和方法名与主类方法相同
    public void method6(int a,int b,Son son){
    }


    Object method(){
        return new Object();
    }
}


class Son extends Father{
    public void smoke(){
            System.out.println("抽华子");
        }
    public void drink(){
        super.drink();
        System.out.println("喝可乐");
    }

    @Override
    public void method1(){
    }
    @Override
    protected void method2(){
    }
    //@Override
    private void method3(){
    }
    //@Override
    public static void method4(){
    }
    @Override
    public Son method5(){
        return new Son();
    }

    @Override
    public void method6(int c ,int b ,Son son1){
    }

    public Father method(){
        return new Father();
    }

}


public class Demo01 {
    public static void main(String[] args) {
        Son s = new Son();
        s.smoke();
        s.drink();
    }

}
